package com.mapfinal.resource.shapefile;

import com.mapfinal.server.MapfinalServer;
import com.mapfinal.server.layer.ServerDataStore;
import com.mapfinal.server.layer.model.MfDatastore;
import com.mapfinal.server.layer.model.MfLayer;

public class ShapefileServerDataStore implements ServerDataStore {

	private ShapefileDataStore dataStore;
	private MfDatastore mfDatastore;
	private int status = 0;

	public ShapefileServerDataStore(MfDatastore datastore) {
		this.mfDatastore = datastore;
		this.dataStore = new ShapefileDataStore(this.mfDatastore.getName(), this.mfDatastore.getUrl(), this.mfDatastore.getCharset());
	}
	
	@Override
	public boolean start() {
		// TODO Auto-generated method stub
		dataStore.start();
		status = 1;
		return true;
	}

	@Override
	public boolean stop() {
		// TODO Auto-generated method stub
		dataStore.stop();
		status = 0;
		return true;
	}

	@Override
	public int status() {
		// TODO Auto-generated method stub
		return status;
	}

	public MfDatastore getMfDatastore() {
		return mfDatastore;
	}

	public void setMfDatastore(MfDatastore datastore) {
		this.mfDatastore = datastore;
	}

	@Override
	public Integer getDataStoreId() {
		// TODO Auto-generated method stub
		return mfDatastore.getId();
	}

	@Override
	public ShapefileServerLayer getServerLayer(String name) {
		// TODO Auto-generated method stub
		if(mfDatastore==null) return null;
		MfLayer mfLayer = MapfinalServer.me().getMfLayer(name);
		ShapefileServerLayer serverLayer = new ShapefileServerLayer(mfLayer);
		return serverLayer;
	}

	@Override
	public ShapefileDataStore getDataStore() {
		return dataStore;
	}

	public void setDataStore(ShapefileDataStore dataStore) {
		this.dataStore = dataStore;
	}

	

}
